package com.neu.flashmall.product.controller;

import com.neu.common.utils.Result;
import com.neu.flashmall.product.entity.PmsProductAttrValue;
import com.neu.flashmall.product.entity.PmsSpuInfo;
import com.neu.flashmall.product.service.PmsProductAttrValueService;
import com.neu.flashmall.product.vo.AttrListVo;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/pms_productAttrValue")
public class PmsProductAttrValueController {

    @Resource
    private PmsProductAttrValueService pmsProductAttrValueService;

    @PutMapping("/addAttrValue")
    public Result addAttrValue(@RequestBody PmsProductAttrValue pmsProductAttrValue){
        String result = pmsProductAttrValueService.addAttrValue(pmsProductAttrValue);
        if("添加属性值成功".equals(result)){
            return Result.ok().setMessage(result);
        }
        return Result.error().setMessage(result);
    }

    @PostMapping("/updateAttrValue")
    public Result updateAttrValue(@RequestBody PmsProductAttrValue pmsProductAttrValue){
        String result = pmsProductAttrValueService.updateAttrValue(pmsProductAttrValue);
        if("更新成功".equals(result)){
            return Result.ok().setMessage(result);
        }
        return Result.error().setMessage(result);
    }

    @DeleteMapping("/deleteAttrValue")
    public Result deleteAttrValue(Long id){
        String result = pmsProductAttrValueService.deleteAttrValue(id);
        if("删除成功".equals(result)){
            return Result.ok().setMessage(result);
        }
        return Result.error().setMessage(result);
    }

    @GetMapping("/changeShowStatus")
    public Result changeShowStatus(Integer now,Long id){
        PmsProductAttrValue pmsProductAttrValue = new PmsProductAttrValue();
        pmsProductAttrValue.setId(id);
        if(now == 0){
            pmsProductAttrValue.setQuickShow(1);
            String result = pmsProductAttrValueService.updateAttrValue(pmsProductAttrValue);
            if("更新成功".equals(result)){
                return Result.ok().setMessage("已经成功设置展示状态为快速展示");
            }
        }else if(now == 1){
            pmsProductAttrValue.setQuickShow(0);
            String result = pmsProductAttrValueService.updateAttrValue(pmsProductAttrValue);
            if("更新成功".equals(result)){
                return Result.ok().setMessage("已经成功设置展示状态为不展示");
            }
        }else{
            return Result.error().setMessage("显示状态代码异常");
        }
        return Result.error().setMessage("数据库异常");
    }

    @GetMapping("/getAddAttrId")
    public Result getAddAttrId(Long spuId){
        List<Long> result = this.pmsProductAttrValueService.getAddAttrId(spuId);
        return Result.ok().put(result);
    }

    @GetMapping("/getAllById")
    public Result getAllById(Long spuId){
        List<PmsProductAttrValue> result = this.pmsProductAttrValueService.getBySpuId(spuId);
        return Result.ok().put(result);
    }

    @GetMapping("/getAttrListVo")
    public Result getAttrListVo(Long id){
        AttrListVo attrListVo = this.pmsProductAttrValueService.getAttrListVo(id);
        return Result.ok().put(attrListVo);
    }
}
